#ifndef DOCXCONV_H_
#define DOCXCONV_H_

//std headers
#include <vector>
#include <string>

//zipios header
#include <zipios++/zipfile.h>

//PComunicator headers
#include <PFileInfo.h>

//IConverter Plugin interface header
#include "IConverter.h"

//! Docxconv converzna trieda. 
/*!
	Trieda implementuje funkcionalitu na parsovanie docx dokumentu.
*/
class Docxconv : public PluginSystem::IConverter
{
	public:
		Docxconv(void);
		~Docxconv(void);

		//! Open (public )
		/*!
			Funkcia sluzi na otvorenie dokumentu  
			\param PComunicator::PFileInfo & theFile docx subor 
			\return bool true ak sa subor podarilo otvorit, rozbalit a ziskat potrebne subory
		*/
		virtual bool Open(PComunicator::PFileInfo &theFile);

		//! Format
		/*!
			Navrati format dokumentu pre ktory je urceny			
			\return true ak sa dokument uspesne otvoril, false inak
		*/
		virtual std::string Format();

		//! Read
		/*!
			Sluzi na precitanie dokumentu a jeho konverziu na cisty text
			\return std::wstring obsahujuci text dokumentu 
		*/
		virtual std::wstring Read();

		//! CreateHtml
		/*!
			Funkcia sluzi na prekonvertovanie povodneho dokumentu na html stranku
			\param string predstavuje cestu kam sa ma ulozit html stranka
			\return string predstavuje plnu cestu k html stranke
		*/
		virtual std::string CreateHtml(std::string thePath);

		//! Version (public )
		/*!
			Verzia Pluginu
			\return char* nullterminated pole znakov obsahujuca
			aktualnu verziu Pluginu.
		*/
		virtual char* Version();


		//! Autor (public )
		/*!
			Autor Pluginu
			\return char* nullterminated pole znakov obsahujuca meno autora
		*/
		virtual char* Autor();

	private:
		zipios::ZipFile *myZipfile;
		std::string myDocFile;
		std::string myDocName;
		std::string myXSLFile;

};


#endif